Most checks against an indexOf
value compare it with -1 because 0 is a valid index. Checking against > 0
ignores the
first element, which is likely a bug.
let arr = ["blue", "red"];
if (arr.indexOf("blue") > 0) { // Noncompliant
// ...
}
Moreover, if the intent is merely to check the presence of the element, and if your browser version supports it, consider using
includes
instead.
let arr = ["blue", "red"];
if (arr.includes("blue")) {
// ...
}
This rule raises an issue when an indexOf
value retrieved from an array is tested against > 0
.